// import { request } from '@umijs/max';

// ['GET','HEAD','DELETE','OPTONS'].forEach(name=>{
//     request[name.toLowerCase()] = function(url,options){
//         if(!options) options = {}
//         options.method = name;
//         return request(url,options)
//     }
// })
// ['POST','PUT','PATCH'].forEach(name=>{
//     request[name.toLowerCase()] = function(url,data,options){
//         if(!options) options = {}
//         options.method = name;
//         options.data = data
//         return request(url,options)
//     }
// })

// export default request;
import { request } from '@umijs/max';  
  
// 为 GET, HEAD, DELETE, OPTIONS 添加快捷函数  
['GET', 'HEAD', 'DELETE', 'OPTIONS'].forEach(name => {  
    request[name.toLowerCase()] = function(url, options = {}) {  
        // 如果 options 中已经指定了 method，则不覆盖它  
        if (!options.method) {  
            options.method = name;  
        }  
        return request(url, options);  
    };  
});  
  
// 为 POST, PUT, PATCH 添加快捷函数，并处理 data 序列化  
['POST', 'PUT', 'PATCH'].forEach(name => {  
    request[name.toLowerCase()] = function(url, data, options = {}) {  
        // 如果 options 中已经指定了 method，则不覆盖它  
        if (!options.method) {  
            options.method = name;  
        }  
  
        // 如果 data 存在，并且 options 中没有指定 headers['Content-Type'] 或其为 'application/json'，则默认序列化为 JSON  
        if (data && !options.headers || !options.headers['Content-Type'] || options.headers['Content-Type'].includes('application/json')) {  
            options.data = JSON.stringify(data);  
        } else {  
            options.data = data;  
        }  
  
        // 如果 options 中已经指定了 data，则不覆盖它（尽管这种情况在实际调用中不太可能发生）  
        if (!options.data) {  
            options.data = data;  
        }  
  
        return request(url, options);  
    };  
});  
  
export default request;